package com.SoftwareManage.dao;

import com.SoftwareManage.entity.Role;
import com.SoftwareManage.entity.RolePermission;
import com.SoftwareManage.entity.User;
import com.SoftwareManage.entity.UserRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

@Mapper
public interface RoleDao {
    //获取所有信息
    List<Role> selectAll();
    //获取分页后的信息
    List<RolePermission> selectAlls(@Param("page") int page,
                                    @Param("pageSize") int pageSize);

    //根据角色id查找权限
    List<String> selectRolePermissions(@Param("id") int id);

    //查询
    List<Role> search(@Param("role_name") String role_name);

    //获取分页后的查询信息
    List<RolePermission> searchs(@Param("role_name") String role_name,
                           @Param("page") int page,
                           @Param("pageSize") int pageSize);

    //编辑信息
    void update(@Param("id") int id,
                @Param("role_name") String role_name,
                @Param("remark") String remark);

    //删除权限
    void deleteRolePermission(@Param("role_id") int role_id);

    //添加权限
    void addRolePermission(@Param("role_id") int role_id,
                           @Param("permission_id") int permission_id);

    //查找所有权角色名
    List<String> selectAllRoles();

    //添加权限
    void addRole(@Param("role_name") String role_name,
                 @Param("remark") String remark);

    //根据角色名查找角色
    Role selectRole(@Param("role_name") String role_name);

    //删除角色
    void deleteRole(@Param("role_id") int role_id);
}
